from common.common_operation import CommonOperation
from common.read_xmind import ReadXmind


class ImportOperation(CommonOperation):

    def generate_case(self, model_data, data_step, need_data,case_data):
        # TODO 是否必填
        self.required(need_data, model_data, data_step, '', case_data)
        # TODO 生成规定格式之外的文件
        case_title = '{},{}：导入规则格式之外的同类型文件，能否{}'.format(model_data['用例标题'], data_step,
                                                        self.case_tip(model_data, need_data['文件格式'], '失败'))
        self.step_common(model_data, data_step, '规则格式之外的同类型文件', '失败', case_data, case_title)
        case_title = '{},{}：文件中数据等于100条，能否{}'.format(model_data['用例标题'], data_step,
                                                     self.case_tip(model_data, need_data['文件格式'], '成功'))
        self.step_common(model_data, data_step, '文件中数据等于100条', '成功', case_data, case_title)
        # TODO 数据量生成用例
        if '数据量' in need_data.keys():
            case_title = '{},{}：文件中数据小于{}条，能否{}'.format(model_data['用例标题'], data_step, need_data['数据量']['value'],
                                                        self.case_tip(model_data, need_data['数据量'], '成功'))
            self.step_common(model_data, data_step, '小于{}条'.format(need_data['数据量']['value']), '成功', case_data,
                             case_title)
            case_title = '{},{}：文件中数据等于{}条，能否{}'.format(model_data['用例标题'], data_step, need_data['数据量']['value'],
                                                        self.case_tip(model_data, need_data['数据量'], '成功'))
            self.step_common(model_data, data_step, '等于{}条'.format(need_data['数据量']['value']), '成功', case_data,
                             case_title)
            case_title = '{},{}：文件中数据大于{}条，能否{}'.format(model_data['用例标题'], data_step, need_data['数据量']['value'],
                                                        self.case_tip(model_data, need_data['数据量'], '失败'))
            self.step_common(model_data, data_step, '大于{}条'.format(need_data['数据量']['value']), '失败', case_data,
                             case_title)

    def case(self):
        return self.operation_type('导入', self.generate_case)


def result():
    return ImportOperation().case()


if __name__ == '__main__':
    import json

    ReadXmind(path=r'C:\Users\admin\Desktop\NAVS.xmind', sheet='导入').processed_data()
    test = result()
    print(json.dumps(test, ensure_ascii=False))
